package com.tl.mqtt.utils;

import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

/**
 * 字节转换工具类
 * @author fyy
 */
public class ByteUtil {

    /**
     * 字符串转字节数组
     * @return 字节数组
     */
    public static byte[] strToBytes(String str) {
        return str.getBytes(Charset.forName("UTF-8"));
    }

    /**
     * 字符串转字节数组
     * @return 字节数组
     */
    public static String bytesToStr(byte[] bytes) {
        return new String(bytes);
    }

    public static byte[] addBytes(byte[] byte1,byte[] byte2){
        byte[] bytes = new byte[byte1.length + byte2.length];
        System.arraycopy(byte1,0,bytes,0,byte1.length);
        System.arraycopy(byte2,0,bytes,byte1.length,byte2.length);
        return bytes;
    }

//    public static void main(String[] args) throws IOException {
//        String test = FileToBase64.fileToBase64("https://p0.ssl.img.360kuai.com/t01fe7c6f87640133e7.webp");
//        byte[] bytes = strToBytes(test);
//        List<byte[]> list = new ArrayList<>();
//        List<String> list1 = new ArrayList<>();
//
//        //模拟拆包程序
//        for (int i = 0; i < bytes.length/1024+1; i++) {
//            byte[] bytes1 = new byte[1024];
//            for (int j = 0+1024*i; j < 1024*(i+1) && j < bytes.length; j++) {
//                bytes1[j-(1024*i)] = bytes[j];
//            }
//            list.add(bytes1); //模拟拆包存储字节流
//            list1.add(bytesToStr(bytes1)); //模拟拆包存储字符串
//        }
//
//        //模拟组包程序
//        byte[] a = new byte[0];
//        for (int i = 0; i < list.size(); i++) {
//            a = addBytes(a,list.get(i));
//        }
//        System.out.println(a.toString());
//
//        byte[] b = new byte[0];
//        for (int i = 0; i < list1.size(); i++) {
//            b = addBytes(b,list1.get(i).getBytes());
//        }
//        FileToBase64.base64ToFile(bytesToStr(b));
//    }

}
